/*
 * @Author: long
 * @Date: 2021-02-09 18:33:47
 * @LastEditTime: 2021-11-09 13:49:01
 * @LastEditors: Please set LastEditors
 * @Description: 全局业务参数配置及数据获取
 * @FilePath: \inventory-apie:\hjimi\人脸辨识云\html\face-recognition-access\src\utils\business.js
 */
import { message } from 'ant-design-vue'
import moment from 'moment'

import {
  roleList, // 角色列表（角色管理）
  iamRoleList // iam角色列表
} from "@/api/iam-manage/role"

import { 
  apiList // api服务列表
 } from '@/api/face-recognition/apiList' //  接口列表

import { 
   appList // 应用列表
   } from '@/api/application-manage/application'
 
const userRoles = [
  { id: 1, name: '超级管理员' }, //superAdmin
  { id: 2, name: '管理员' }, //admin
],

// 角色列表
  roleNameLisArr = [
    { id: 0, value: '超级' },
    { id: 1, value: '普通' },
    { id: 3, value: '查看' }
  ],

//  iam用户状态
  iamStatus = [
    { key: 'normal', value: '已启用' },
    { key: 'disabled', value: '已停用' },
    // { key: 'pending', value: '待审核' },
    // { key: 'rejected', value: '已拒绝' },
  ],

// 日志数据查询枚举
  log_timeSlot = [
    { id: "DAY", name: "按天", },
    { id: "HOUR", name: "按时", },
  ],
  log_checkSuccess = [
    { mark: "success", name: "调用成功", },
    { mark: "fail", name: "调用失败", },
  ]

/**
 * @description: 获取角色名称和id（角色管理）
 */
export async function getRoleName_id() {
  let lis = []
  return await roleList().then((res) => {
    const { data } = res
    if (res.code === 0) {
      data.map((x, y) => {
        lis.push({
          roleName: x.roleName,
          id: x.id,
        })
      })
      return lis
    } else {
      message.error(res.msg)
      return false
    }
  })
}

/**
* @description: 获取角色名称和id（iam）
*/
export async function getIam_RoleName_id() {
  let lis = []
  return await iamRoleList().then((res) => {
    const { data } = res
    if (res.code === 0) {
      data.map((x, y) => {
        lis.push({
          roleName: x.roleName,
          id: x.id,
        })
      })
      return lis
    } else {
      return false
    }
  })
}


/**
* @description: 获取API服务列表
*/
export async function getApiServeList() {
  return await apiList().then((res) => {
   if(res.data) {
    const { data } = res
     if(Array.isArray(data)) {
      if (data.length !== 0) {
        return data 
      } else {
        return []
      }
     }
  } else {
    return []
  }
  })
}

/**
* @description: 获取应用列表
*/
export async function getAppList() {
  return await appList().then((res) => {
   if(res) {
    const { data } = res
    if (Array.isArray(data)) {
      return data 
    } else {
      return []
    }
  } else {
     message.error(res.msg)
   }
  })
}

/**
 * @description: 按需获取时间段
 * @param { String }
 */

export function getTimeSlot (type) {
  let timeTypes = {
    '今天': [moment(), moment()],
    '昨天': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
    '上周': [moment().subtract(6, 'days'), moment()],
    '前30天': [moment().subtract(29, 'days'), moment()],
    '当月': [moment(), moment().endOf('month')],
    '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
    '近一月': [moment().startOf('day').subtract(1, 'month'), moment()]
  }
 return timeTypes  
}

/**
* @description: 验证表单不能为空
* @param { String }
*/
export function validateNotNull(notNullName) { return [{ required: true, message: `请输入${notNullName}`, trigger: "blur" }] }

export { roleNameLisArr as getRoleNameLis }
export { iamStatus as getIamStatus }
export { log_timeSlot as get_log_timeSlot }
export { log_checkSuccess as get_log_checkSuccess }